﻿// Infrastructure/CodeGeneration/IEntityGenerator.cs

using System.Collections.Generic;
using DatabaseManager.Core.Models;

namespace DatabaseManager.Infrastructure.CodeGeneration
{
    /// <summary>
    /// 实体类生成器接口，定义数据库表到实体类的代码生成规范
    /// 负责将数据库表结构信息转换为对应的实体类代码
    /// </summary>
    public interface IEntityGenerator
    {
        /// <summary>
        /// 根据表信息和列信息生成实体类代码
        /// </summary>
        /// <param name="table">表结构信息对象，包含表名、注释等元数据</param>
        /// <param name="columns">列信息集合，包含列名、数据类型、约束等详细信息</param>
        /// <returns>生成的实体类代码字符串，包含命名空间、类定义、属性定义等完整结构</returns>
        string GenerateEntityClass(TableInfo table, List<ColumnInfo> columns);
    }
}
